iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
自我挑戰組

System Software Introduction系列 第 7

System Software - System Library

  • 分享至 

  • xImage
  •  

System Library服務application software/system utilities的函式庫(C library),負責提供控制kernel的API給application software/system utilities、會直接對kernel提出服務請求。


https://ithelp.ithome.com.tw/upload/images/20230428/20152298CHviTczTy0.jpg

How to Request Kernel Service

System library會使用system call向kernel要求提供服務
System library運作在user mode中,所以執行時的權限有限制
例如: 計算string長度的功能,可以透過簡單的memory access與加法達成,可以在system library的內部處理完成
例如: 對一個檔案寫入內容的功能,不被允許在user mode當中執行,所以system library需要透過system call才能完成檔案寫入。

How to Service System Utilities and Application Software

System library提供API讓System Utilities和Application Software使用system library已包含的功能
System library提供的功能有一些是可以在system library內部自行處理完成的,但有一些功能則需要kernel的協助才能完成

C standard library: 符合C語言標準的C library,提供C語言標準中規定需要具備的heade與function,例如: stdio.h, stdib.h, …
因應不同的需求,有不同的組織開發出多款C standard library,例如GNU C library (glibc, Linux的核心C library)、Newlib (Cygwin採用)、uClibc(多為嵌入式系統採用)
C standard library通常可以支援多種CPU與多種OS的平台,並且容易porting到新的平台,使software developers可以容易寫出可移植的(portable) source code。

System library可以減少software developer跨平台開發所需的porting effort

System library可以在不同的kernel上保持相同的interface,讓software developer開發的時間可以縮短。

Software developer可以快速的在新平台上找到使用的方法線上佔了多少
例如: 呼叫system library 可以System library可以減少software developer跨平台開發所需的porting effort


上一篇
System Software - Kernel
下一篇
System Software - System Utilities Compiler Toolchain
系列文
System Software Introduction30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言